home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- /*
- DeSmet C : Bind w. De320.o
- Other C's: LINK w. appropriate .LIB file
- */
- unsigned pgm1[0x88] =
-
- /* 0 */ { 0xF900, 0x9ff, 0xF900, 0x2, 0x200, 0x0, 0x192, 0x324,
- /* 8 */ 0x4B6, 0x647, 0x7D9, 0x96A, 0xAFB, 0xC8B, 0xE1B, 0xFAB,
- /* 10 */ 0x1139, 0x12C8, 0x1455, 0x15E2, 0x176D, 0x18F8, 0x1A82, 0x1C0B,
- /* 18 */ 0x1D93, 0x1F19, 0x209F, 0x2223, 0x23A6, 0x2528, 0x26A8, 0x2826,
- /* 20 */ 0x29A3, 0x2B1F, 0x2C98, 0x2E11, 0x2F87, 0x30FB, 0x326E, 0x33DE,
- /* 28 */ 0x354D, 0x36BA, 0x3824, 0x398C, 0x3AF2, 0x3C56, 0x3DB8, 0x3F17,
- /* 30 */ 0x4073, 0x41CE, 0x4325, 0x447A, 0x45CD, 0x471C, 0x4869, 0x49B4,
- /* 38 */ 0x4AFB, 0x4C3F, 0x4D81, 0x4EBF, 0x4FFB, 0x5133, 0x5269, 0x539B,
- /* 40 */ 0x54CA, 0x55F5, 0x571D, 0x5842, 0x5964, 0x5A82, 0x5B9D, 0x5CB4,
- /* 48 */ 0x5DC7, 0x5ED7, 0x5FE3, 0x60EC, 0x61F0, 0x62F1, 0x63EF, 0x64E8,
- /* 50 */ 0x65DD, 0x66CF, 0x67BD, 0x68A6, 0x698C, 0x6A6D, 0x6B4A, 0x6C24,
- /* 58 */ 0x6CF9, 0x6DCA, 0x6E96, 0x6F5E, 0x7023, 0x70E2, 0x719E, 0x7255,
- /* 60 */ 0x7307, 0x73B5, 0x745F, 0x7504, 0x75A5, 0x7641, 0x76D9, 0x776C,
- /* 68 */ 0x77FA, 0x7884, 0x7909, 0x798A, 0x7A05, 0x7A7D, 0x7AEF, 0x7B5D,
- /* 70 */ 0x7BC5, 0x7C29, 0x7C89, 0x7CE3, 0x7D39, 0x7D8A, 0x7DD6, 0x7E1D,
- /* 78 */ 0x7E5F, 0x7E9D, 0x7ED5, 0x7F09, 0x7F38, 0x7F62, 0x7F87, 0x7FA7,
- /* 80 */ 0x7FC2, 0x7FD8, 0x7FE9, 0x7FF6, 0x7FFD, 0x7FFF, 0x0, 0x0};
-
- unsigned pgm2[0xc9] =
- { 0x7f81,
- /* A00 */ 0x6E00, 0x7F89, 0x5001, 0x4F01, 0x6E00, 0x7E01, 0x5001, 0x6A01,
- /* A08 */ 0x8004, 0x7F8E, 0x6700, 0x2000, 0x1001, 0x5002, 0x2F00, 0x5803,
- /* A10 */ 0x2E00, 0x5804, 0x6A01, 0x8005, 0x7F8E, 0x5019, 0x8200, 0x7F8E,
- /* A18 */ 0x501A, 0x8600, 0x7F8E, 0x101A, 0x501B, 0x7F89, 0x500A, 0x500B,
- /* A20 */ 0x6602, 0x1101, 0x100A, 0xFA00, 0xA50, 0x660B, 0x100A, 0xFB00,
- /* A28 */ 0xA3D, 0x201A, 0xB, 0x6714, 0x1B, 0x6716, 0x201A, 0xA,
- /* A30 */ 0x6715, 0x1B, 0x6717, 0x201A, 0xB, 0x7D15, 0x1B, 0x7D17,
- /* A38 */ 0x201A, 0xA, 0x7D14, 0x1B, 0x7D16, 0x2003, 0x5018, 0x200B,
- /* A40 */ 0x1018, 0xFA00, 0xA48, 0x500B, 0x2F18, 0x5818, 0xF900, 0xA3F,
- /* A48 */ 0x200B, 0x18, 0x500B, 0x660A, 0x1, 0x500A, 0xF900, 0xA20,
- /* A50 */ 0x7F89, 0x5005, 0x5006, 0x7E01, 0x5007, 0x5008, 0x2104, 0x5009,
- /* A58 */ 0x2007, 0x500A, 0x7, 0x5007, 0x7F89, 0x500B, 0x200A, 0x100B,
- /* A60 */ 0xFB00, 0xAB6, 0x2019, 0x5, 0x6713, 0x2019, 0x4, 0x1005,
- /* A68 */ 0x6712, 0x200B, 0x1008, 0xFA00, 0xA75, 0x2005, 0x1006, 0x5005,
- /* A70 */ 0x7F89, 0x1012, 0x5012, 0xF900, 0xA78, 0x2005, 0x6, 0x5005,
- /* A78 */ 0x200B, 0x500C, 0x2002, 0x100C, 0xFA00, 0xAB1, 0x200A, 0xC,
- /* A80 */ 0x500D, 0x201A, 0xD, 0x670E, 0x1B, 0x670F, 0x201A, 0xC,
- /* A88 */ 0x6710, 0x1B, 0x6711, 0x7F89, 0x6A12, 0x6D0E, 0x6C13, 0x6D0F,
- /* A90 */ 0x6C12, 0x5814, 0x7F89, 0x6D0F, 0x6C13, 0x6D0E, 0x7F90, 0x5815,
- /* A98 */ 0x2E10, 0xF14, 0x5910, 0x6214, 0x590E, 0x2E11, 0xF15, 0x5911,
- /* AA0 */ 0x6215, 0x590F, 0x201A, 0xD, 0x7D0E, 0x1B, 0x7D0F, 0x201A,
- /* AA8 */ 0xC, 0x7D10, 0x1B, 0x7D11, 0x200C, 0x7, 0x500C, 0xF900,
- /* AB0 */ 0xA7A, 0x200B, 0x1, 0x500B, 0xF900, 0xA5E, 0x200A, 0x5008,
- /* AB8 */ 0x2F09, 0x5809, 0x5806, 0x2003, 0x100A, 0xFC00, 0xA58, 0x7E58,
- /* AC0 */ 0x5001, 0x4F01, 0xF900, 0xAC2, 0x0, 0x0, 0x0, 0x0};
-
-
- int cmin,j,jh,k,i,xr[1024],xi[512],y[1024],z[1024],scale,offset;
-
-
- main()
- {
- unsigned seg320,io320;
- long count,jjj,jj,jjmax,jjmore;
- char c,ct;
-
-
- printf("Enter segment in hex ? (eg: D000) ");
- scanf("%x",&seg320);
- printf("Segment = %x\n",seg320);
- printf("Enter IO base address in hex ? (eg: 300) ");
- scanf("%x",&io320);
- printf("IO base address = %x\n",io320);
- scale = 0;
- offset = 100;
-
- hres320();
- hlt320(io320); /* make sure Model 10 is in halt state */
-
- /* Poke in FFT program */
- pokewf(pgm1,0,0x88,seg320);
- pokewf(pgm2,0x9ff,0xc9,seg320);
-
- /* Generate a moving pulse */
- for ( i=0; i<1024; i++)
- xr[i] =0x800;
- for(i=508;i<512;i++)
- xr[i]=0xf800;
- for(i=0;i<512;i++) /* imag. values */
- xi[i]=0;
-
- /* Do 512 FFTs and display on CGA */
- for ( i=0; i<512; i++)
- {
- go320(io320); /* go */
- for(k=0;k<511;k++)
- {
- y[k]= offset - ((z[k] )>>scale) ;
- }
- sigpts(&y[0],511); /* display transform */
- jj = 0;
- while( regin(io320) != 0x0058) {}
- hlt320(io320); /* halt */
- peekwf(0x201,seg320,&z[0],511);
- pokewf(xi,0x600,512,seg320); /* fill imag w. zeroes */
- pokewf(&xr[i],0x200,512,seg320); /* fill real w. data */
- }
- co80320(); /* 80 col mode */
-
- }
-
-
-